New home, a new born and no apps in 2024

3 min read

2024 was an intense year. I had a baby. Built a house. And in between, I became obsessed with building an advanced spell checker for Fonts Pro—one that never actually made it to production.

It all started with a simple idea: enhance the typing experience in our keyboard app with a fast, smart, and private spelling correction system. I began training models, experimenting with architectures, benchmarking, and evaluating results. Week after week, I refined the algorithm and learned more about PyTorch, CoreML, transformers, Seq2Seq. Yet, the more I learned, the more complex the solution became. Meanwhile, life went on: diapers, blueprints, suppliers, major decisions.

The spell checker called Spellforge evolved. But time slipped away. Even though the model worked well, it never shipped. Why? Because sometimes perfection is the enemy of good enough. Because priorities shift. Because building a house (and raising a baby) is also building a future.

Spellforge is pretty fast and works really well inside the keyboard app. It can predict words, autocomplete and correct words in less than 100ms, can process 9 tokens in less than 30MB of RAM, so it feels instantaneous. Spellforge has 9–15M parameters.

There is a maximum amount of RAM that limits what can run inside the keyboard app

Input: '<howaryo>' -> Output: 'How are you'

Will the spell checker return? Maybe. Was it worth the effort? Definitely. If you know how to make the model stop rambling and inventing words—please tell me.

starbler -> strawter, should be starbler -> starbucks or something that was in the training set.

Epoch 3 Summary:
Average Loss: 2.0348
Average Accuracy: 86.3971%
Average Perplexity: 7.6699
Learning Rate: 0.001000f
Epoch time: 1m 52s
Total time elapsed: 5m 41s
Estimated time remaining: 69m 37s
Input: '<how are you>' -> Output: 'Howard'
Input: '<its>' -> Output: 'it's'
Input: '<fee>' -> Output: 'feel'
Input: '<definety>' -> Output: 'definitely'
Input: '<starbler>' -> Output: 'strawter'
Input: '<starb>' -> Output: 'start'
Input: '<starbu>' -> Output: 'strawberry'
Input: '<starberry>' -> Output: 'strawberry'
Input: '<strawvberr>' -> Output: 'strawter'

If you are interested in knowing more about Spellforge, its capabilities, how I built it, or if you want to try it, let me know in the comments.

Tori Tobi

I also created a small game “Tori Tobi” with music I made (hint: I’m not a musician). You can listen to the track—it’s like a “milonga surera”, which is a music style from the Pampas in Buenos Aires, Argentina, where I live.

Lunara AI

Anyway, every detour brings lessons—even those that never appear in the app or are released.

Recently, I started vibing (vibe coding 😂) a new app. It’s a meditation AI app called Lunara AI. I’m very excited by this project. But I should leave this for the next blog post. This post was about explaining what happened in 2024, and why there haven’t been updates.


Pixdeo

I’m Martin, the founder of Pixdeo, a company that creates iOS and web apps.
I love to explore the intersection of technology and creativity.
Bring your touch to life with Pixdeo Apps 🤖.